package mx.frantor.catalogos.bussines;

import java.util.Date;
import java.util.List;

import mx.frantor.catalogos.dao.HistEstatusDetallePedidoDAO;
import mx.frantor.catalogos.daoimp.HistEstatusDetallePedidoDAOImpl;
import mx.frantor.catalogos.entitys.HistEstatusDetallePedidoEntity;

public class HistEstatusDetallePedidoBussines {
	
	private HistEstatusDetallePedidoDAO estDetPedDAOImpl = new HistEstatusDetallePedidoDAOImpl();
	private MaquinariaBussines maqBuss = new MaquinariaBussines();
	
	public String agregarEstatusDetPed(Long idDetallePedido, Integer cantidad, String estatus, Long idMaquina, String encargado){
		HistEstatusDetallePedidoEntity nuevoEstatus = new HistEstatusDetallePedidoEntity();
		Date fecha = new Date();
		nuevoEstatus.setIdDetallePedido(idDetallePedido);
		nuevoEstatus.setCantidad(cantidad);
		nuevoEstatus.setEstatus(estatus);
		nuevoEstatus.setIdMaquina(idMaquina);
		nuevoEstatus.setEncargado(encargado);
		nuevoEstatus.setFecha(fecha);
		
		String res = estDetPedDAOImpl.agregarEstatus(nuevoEstatus);
		
		return res;
	}
	
	public String modificarEstatusDetPed(Long idEstatusDetallePedido, Long idDetallePedido, Integer cantidad, String estatus, Long idMaquina, String encargado){
		HistEstatusDetallePedidoEntity modificarEstatus = new HistEstatusDetallePedidoEntity();
		
		modificarEstatus.setIdHistEstatusDetallePedido(idEstatusDetallePedido);
		modificarEstatus.setIdDetallePedido(idDetallePedido);
		modificarEstatus.setCantidad(cantidad);
		modificarEstatus.setEstatus(estatus);
		modificarEstatus.setIdMaquina(idMaquina);
		modificarEstatus.setEncargado(encargado);
		
		String res = estDetPedDAOImpl.modificarEstatus(modificarEstatus);
		
		return res;
	}
	
	public String eliminarEstatusDetPed(long idestatusdetallepedido){
		
		String res = estDetPedDAOImpl.eliminarEstatus(idestatusdetallepedido);
		
		return res;
	}
	
	public List<HistEstatusDetallePedidoEntity> getTodosEstatusDetallePedidoActivos(){
		List<HistEstatusDetallePedidoEntity> lstEstatus = estDetPedDAOImpl.getTodosEstatusActivos();
		return lstEstatus;	
	}
	
	public HistEstatusDetallePedidoEntity getDetallePedido(long idEstatusDetallePedido){
		HistEstatusDetallePedidoEntity estatus = estDetPedDAOImpl.getEstatusId(idEstatusDetallePedido);
		return estatus;
	}
	
	public List<HistEstatusDetallePedidoEntity> getEstatusDetallePedidoActivo(long idEstatusDetallePedido){
		List<HistEstatusDetallePedidoEntity> lstEstatus = estDetPedDAOImpl.getEstatusPorId(idEstatusDetallePedido);
		return lstEstatus;	
	}
	
	public List<HistEstatusDetallePedidoEntity> getEstatusDetallePedidoPorIdDetPedido(long idDetallePedido){
		List<HistEstatusDetallePedidoEntity> lstEstatus = estDetPedDAOImpl.getEstatusPorIdDetallePedido(idDetallePedido);
		for(HistEstatusDetallePedidoEntity estatusE:lstEstatus){
			if(estatusE.getIdMaquina()!=null){
				estatusE.setClaveMaq(maqBuss.getMaquinariaId(estatusE.getIdMaquina()).getNombre());
			}else{
				estatusE.setClaveMaq("NA");
			}
		}
		return lstEstatus;	
	}
	
	public List<HistEstatusDetallePedidoEntity> getEstatusDetallePedidoPorEncargado(String encargado, Date fecha, Date oFecha){
		System.out.println("Buss \n" + fecha.toString() + "\n" + oFecha.toString());
		List<HistEstatusDetallePedidoEntity> lstEstatus = estDetPedDAOImpl.getEstatusPorEstatus(encargado, fecha, oFecha);
		for(HistEstatusDetallePedidoEntity estatusE:lstEstatus){
			if(estatusE.getIdMaquina()!=null){
				estatusE.setClaveMaq(maqBuss.getMaquinariaId(estatusE.getIdMaquina()).getNombre());
			}else{
				estatusE.setClaveMaq("NA");
			}
		}
		return lstEstatus;	
	}

	public int eliminarEstatusDetPed(long idDetPed, String estatus) {
		// TODO Auto-generated method stub
		int res = estDetPedDAOImpl.eliminarEstatusDetener(idDetPed, estatus);
		
		return res;
	}

	@SuppressWarnings("unused")
	private HistEstatusDetallePedidoEntity getDetallePedidoEstatus(long idDetPed,
			String estatusAct) {
		
		HistEstatusDetallePedidoEntity estatus = estDetPedDAOImpl.getEstatusIdDetEstatus(idDetPed, estatusAct);
		return estatus;
	}

}
